Blog search

Friday Facts #26 - How to satisfy achievers

Posted by kovarex on 2014-03-21

Hello, the spring officially started today here in the Czech republic and it is really beautiful weather here. This is nice, because the "I need to have a break" kind of strolls are much more enjoyable now. I don't want you to confuse with terms you don't know, so you can read in this lengthy article that players can be roughly divided into 4 basic categories Achiever, Explorer, Killer and Socialiser. I believe that I'm 50% achiever 25% explorer and 25% killer, so one of the (many) things I wanted to have for Factorio to be different than just industrially modded Minecraft was to offer the satisfaction for achievers like me. This is the reason why the player is under the pressure of biters that evolve over time instead of having all the time on the world to play and fiddle with factory setups. The achiever wants to fight through the obstacles to get to the goal, but the goal has to be difficult to be meaningful. When I played Starcraft II mission on brutal and I won on the first try, I was dissatisfied, because it was too easy. When I had to fail 3 times to understand the level mechanics and requirements to be able to beat the level after another 2 tries, that was the thing I loved. I loved that I had to think about timings and different approaches to problems and search for combination of the choices that work the best. But how to do it? How to satisfy us, achievers, in Factorio? How to do it, so non-achievers or beginners will not be discouraged? This is the way I believe should be done in the future: Provide much more balanced starting conditions on freeplay (some way of balancing nearby resources to contain the same amounts at least), and provide way to share starting seed so players can compare results on the exact same world. Add difficulty settings for the freeplay (they are not now) that would really make a difference in more aspects of the game, like enemy evolution/expansion speed, aggressiveness, pollution spread etc.so finishing on the hardest difficulty would really be a challenge. Provide something measurable that could be achieved (apart just finishing the game), trying to minimize the time seems like one of the possible solutions, because I really love the kind of strategic thinking, where every decision matters. Provide achievements. It is quite mainstream these days, and I believe that there is a good reason for it. It just satisfies us, achievers, and gives us directions as long as these achievements really mean something like: Finish the game under X hours on some preset settings. Accumulate 1 000 000 electronic circuits under X hours, or the other way around, accumulate the biggest amount of electronic circuits possible in 3 hours. Score some big amount of points in the tight spot missions. Make online leaderboards of the these on our site (Another use of the accounts already have). I'm sure there is much more we can do in this direction. The more I think about this, the more I want it :) The bugfix release of 0.9.4 has been released today and we believe there are just few things to be fixed to have the final stable release so we started to plan for the multiplayer today. We just had a first small meeting and you can see our plan of battle. We will consider it very naive in the upcoming weeks for sure, but better some plan than no plan :) I'm quite curious what do you think about this, so don't hesitate to comment on our forums.

Friday Facts #81 - Chain signals

Posted by kovarex on 2015-04-10

Hello hello,

Friday Facts #211 - The little things

Posted by kovarex on 2017-10-06

We are aware that we don't add so much content to Factorio these days. The reason we always state is that we are focusing on polishing and finishing the game. There are a lot of little things and details (some call it quality of life improvements), that don't look that awesome when reviewed one by one, but once they accumulate together they should make a big difference in the game experience. I'm going to talk about some of them now, but don't be afraid that we won't add anything new in the 0.16, as the work on the artillery train has already started and it is probably going to be epic :).

Friday Facts #340 - Deep desyncs

Posted by Klonan on 2020-03-27

Not mentioning it would be weird I really think everybody has heard all about this and nothing else over the last few weeks, but yes, the Coronavirus. For now, with Factorio, everything seems okay. We are all working from home, the team is still going, and so far we are following our plan quite well. We released the Character GUI and Statistics GUI last week, and some improvements such as new water splashes and leaf animations this week. Things are still moving along. However it is still early days, we haven't really had any experience having the whole team work remotely, so there may be some challenges we need to tackle as time goes on. At the moment we don't know whether this will affect our 1.0 release date, I guess it will one way or the other, but for now we aren't announcing any changes.

Friday Facts #91 - Being the evil guy

Posted by kovarex on 2015-06-19

Hello, I was peacefully writing the code when suddenly, I heard the sound of gun being reloaded. I gave a quick glance at my own gun. Yes, it is not loaded, of course. So I took cover under the table to search for some lost ammo. I needed to be able to return fire soon. Long story short, our nerf guns package arrived this week, and the office looks as a battlefield these days.

Friday Facts #264 - Texture streaming

Posted by posila on 2018-10-12

Hello, it is me, posila, with another technical article. Sorry.

Friday Facts #392 - Parametrised blueprints

Posted by kovarex on 2024-01-05

Hello, I'm going to cover a feature I only just finished. I was thinking about this idea for years already. I always thought the feature is too hardcore to be included, but I learned that it is usually a mistake to underestimate the players, so I gave it a go, and decided to share it right away.

Friday Facts #175 - Programmable Speaker

Posted by Twinsen on 2017-01-27

The programmable speaker There has always been some talk around the office about a music box that can be used to make simple sounds, you could even connect it to the circuit network and make simple songs. I put it on my long list of circuit network ideas, and in the past few week it has been coming to life. So today I'll be talking about an exciting new entity coming in 0.15: the Programmable Speaker. It was designed to do two main things: Show configurable GUI alerts and play audio alerts based on circuit conditions. Play audio samples as controlled by the circuit network in a way that simple songs can be created. The entity graphics are placeholder programmer graphics. Let's start with the useful part, it's pretty straightforward. You set your circuit condition, set the sound you want it to make, set whether the sound should be heard in that part of the factory or across the entire map and add an optional GUI alert message. When the circuit condition is true, the speaker will play the selected sound and show the optional GUI alert. You can let the sound play continuously or use simple combinator logic to make the sound at custom intervals. And now that fun part. We knew we wanted the Programmable Speaker to be able to make simple songs. Crazy ideas started to pour in, and it was quickly becoming a full-blown music production DAW with custom synthesizers and control over everything. But this has to be easily controlled by the circuit network without having to build real-time computers with combinators. So in the end I made the Programmable Speaker work as a step sequencer. If you send a circuit network signal pulse, an audio sample will start playing, otherwise nothing will happen. There is no control over the sample length or any special effects, but this means it is quite easy to control it using the circuit network. Enough talk. Here is a demo of a song made using the samples already included. Everything you hear is created inside Factorio. I will leave it to you to analyze the video and figure out how the song is generated. Modders can easily add more audio samples to the entity, including custom alerts. I imagine there will be a voice pack mod that could be programmed using combinators to speak things like "Crude oil is low". I'm sure the Programmable Speaker will be part of some very interesting posts on the Factorio Reddit. There are some other circuit network improvements coming to 0.15, but I will talk more about them in some other FFF. The map download struggle (Technical) For as long as I can remember, our multiplayer map downloader had (among other problems) the problem that it would get stuck at 100%. It was an extremely rare problem some random person would report. We would keep ignoring the bug throwing it in "Pending" or "Duplicates" or "1/0 Magic", but after a few months some other person would report it again. I seem to have a habit of obsessing over these rare "unfixable" bugs (audio mixer crashing, vsync performance issues, non-pixel-perfect sprite drawing), so I started looking into this map downloader issue. First I was looking at the map downloader code itself, thinking surely there is something wrong there. This was a long process because I had no way of reproducing the issue, so it usually involved going back and forth with a person who was experiencing the issue. I would create an executable that would create detailed logs, that person would run the game using that, I would investigate the logs and see that our map downloader works correctly. The I would add more logging and so on. By the time I would reach some kind of conclusion that person would stop answering and probably stop playing Factorio. But near the end thanks to some helpful players, I was able to see what was happening. Looking at the wireshark capture for both the client and the server, it seems that a packet with a specific content or a specific checksum always gets filtered. Some cheeky firewall from the computer, router or ISP is looking inside the packet data and blocking the packets it does not like. No matter how many times I resend that packet, it never gets through, while all the other hundreds of thousands of game and map packets have no problem getting through. Correct me if I'm wrong, but something like this should not be happening. You can read all the details and see the packet data last posts of the forum topic. The issue seems to be resolved if I add one byte of random data to the packet, but I would like to know why is this happening in the first place. If you know what is happening or you know someone that might, please don't hesitate to enlighten us :) This shows how hard it is to make software that "just works" for everyone. There will always be that 0.1% of people who end up having problems that no one could have ever foreseen. Big thanks to admalledd, dadymax, Rippie and the other forum members who helped or are still helping me investigate this odd issue. In other good news, while Rseding91 was also looking at the map download code trying to investigate this problem, he found we had some slow code doing hard drive seeking, slowing down map uploads. He improved it and you should see better map transfer speeds on LAN and high speed connections. As usual, let us know what you think at the forums.

Friday Facts #382 - Logistic groups

Posted by kovarex on 2023-10-27

Hello, today we will go over some of the details of Space platforms we couldn't fit into the last FFF, as well as some new features that will tie the whole system together.